package com.tyk.bookstore.front.product.service;


import com.tyk.bookstore.front.product.model.dto.Book4CartDto;
import com.tyk.bookstore.front.product.model.dto.Book4OrderCommentSuggestionDto;
import com.tyk.bookstore.front.product.model.dto.Book4OrderDto;
import com.tyk.bookstore.front.product.model.dto.BookDto;
import com.tyk.bookstore.front.product.model.query.Book4OrderPriceCheckQuery;

import java.util.List;
import java.util.Set;

/**
 * @author tyk
 * @description 书籍对内接口
 */
public interface BookApiService {
    BookDto getBookBriefById(Long id);

    String getNameById(Long id);

    List<Long> getIdListByNameLike(String name);

    Book4CartDto getBook4CartDtoById(Long id);

    /**
     * 获取创建订单所需商品信息
     */
    List<Book4OrderDto> getBook4OrderDtoListByIdSet(Set<Long> idList);

    /**
     * 断言书籍存在
     */
    void assertExistByIdSet(Set<Long> idSet);

    /**
     * 断言书籍存在
     */
    void assertExistById(Long id);

    /**
     * 断言书籍价格无变化
     */
    void assertPriceNotChange(List<Book4OrderPriceCheckQuery> priceCheckQueryList);

    /**
     * 查看书籍信息
     */
    List<Book4CartDto> getBook4CartDtoListByIdSet(Set<Long> idSet);

    /**
     * 查询书籍信息
     */
    List<Book4OrderCommentSuggestionDto> getBook4OrderCommentSuggestionDtoListByIdSet(Set<Long> idSet);

    /**
     * 获取已下架的书籍的ID列表
     */
    List<Long> getOffIdListByIdSet(Set<Long> idSet);
}
